package com.ruoyi.pay.type.service.impl;

import java.util.List;

import javax.annotation.Resource;

import com.basic.service.impl.BaseServiceImpl;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import com.ruoyi.pay.type.mapper.PayTypeMapper;
import com.ruoyi.pay.type.service.IPayTypeService;
import com.ruoyi.constant.RedisConstant;
import com.ruoyi.pay.type.domain.PayType;

/**
 * 支付类型Service业务层处理
 * 
 * @author 王强
 * @date 2023-12-23
 */
@Service
public class PayTypeServiceImpl extends BaseServiceImpl<Long, PayType> implements IPayTypeService 
{
	private RedisTemplate<String, List<PayType>> redisTemplate;
	
    public PayTypeServiceImpl(PayTypeMapper baseMapper) {
		super(baseMapper);
		// TODO Auto-generated constructor stub
	}


    /**
     * 查询支付类型
     * 
     * @param id 支付类型主键
     * @return 支付类型
     */
    @Override
    public PayType selectById(Integer id)
    {
        return baseMapper.selectById(id);
    }

    @Override
	public List<PayType> getPayListByLimit(int num) {
		// TODO Auto-generated method stub
		return this.listToCache(redisTemplate, RedisConstant.PAY_TYPE_KEY, num);
	}


	/**
     * 查询支付类型列表
     * 
     * @param payType 支付类型
     * @return 支付类型
     */
    @Override
    public List<PayType> selectList(PayType payType)
    {
        return baseMapper.selectList(payType);
    }

    /**
     * 新增支付类型
     * 
     * @param payType 支付类型
     * @return 结果
     */
    @Override
    public int insert(PayType payType)
    {
        return baseMapper.insert(payType);
    }

    /**
     * 修改支付类型
     * 
     * @param payType 支付类型
     * @return 结果
     */
    @Override
    public int update(PayType payType)
    {
        return baseMapper.update(payType);
    }

    /**
     * 批量删除支付类型
     * 
     * @param ids 需要删除的支付类型主键
     * @return 结果
     */
    @Override
    public int deleteByIds(Integer[] ids)
    {
        return baseMapper.deleteByIds(ids);
    }

    /**
     * 删除支付类型信息
     * 
     * @param id 支付类型主键
     * @return 结果
     */
    @Override
    public int deleteById(Integer id)
    {
        return baseMapper.deleteById(id);
    }

    @Resource
	public void setRedisTemplate(RedisTemplate<String, List<PayType>> redisTemplate) {
		this.redisTemplate = redisTemplate;
	}
}
